#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
验证 Zerogpt API 调用
"""

import http.client
import json
import logging

# 设置日志
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)

def test_zerogpt_api_directly():
    """直接测试 Zerogpt API"""
    
    print("=" * 60)
    print("直接测试 Zerogpt API 调用")
    print("=" * 60)
    
    # API 配置
    api_key = "272297c6aemsh826a07ff7b8b8b7p110b27jsncc056fe79a23"
    host = "zerogpt.p.rapidapi.com"
    
    # 测试文本
    test_content = "这是一段测试文本，用于验证 Zerogpt API 调用。"
    
    print(f"API Key: {api_key[:20]}...")
    print(f"Host: {host}")
    print(f"测试文本: {test_content}")
    print()
    
    try:
        # 准备请求
        payload = {
            'input_text': test_content
        }
        
        headers = {
            'X-RapidAPI-Key': api_key,
            'X-RapidAPI-Host': host,
            'Content-Type': 'application/json'
        }
        
        print("🔍 发送 API 请求...")
        print(f"请求头: {headers}")
        print(f"请求数据: {json.dumps(payload, ensure_ascii=False)}")
        print()
        
        # 发送请求
        conn = http.client.HTTPSConnection(host)
        conn.request("POST", "/api/detect", json.dumps(payload), headers)
        
        response = conn.getresponse()
        response_data = response.read().decode()
        
        print(f"📡 收到响应:")
        print(f"状态码: {response.status}")
        print(f"响应头: {dict(response.getheaders())}")
        print(f"响应内容: {response_data}")
        print()
        
        if response.status == 200:
            result = json.loads(response_data)
            print("✅ API 调用成功!")
            print(f"AI 概率: {result.get('ai_probability', 'N/A')}")
            print(f"内容类型: {result.get('content_type', 'N/A')}")
        else:
            print(f"❌ API 调用失败: {response.status}")
            print(f"错误信息: {response_data}")
            
    except Exception as e:
        print(f"❌ API 调用异常: {str(e)}")
    
    print("=" * 60)

def test_web_api_call():
    """测试 Web API 调用"""
    
    print("\n" + "=" * 60)
    print("测试 Web API 调用")
    print("=" * 60)
    
    import requests
    
    base_url = "http://localhost:5000"
    test_content = "这是一段测试文本，用于验证 Web API 调用。"
    
    print(f"Web 服务器: {base_url}")
    print(f"测试文本: {test_content}")
    print()
    
    try:
        print("🔍 发送 Web API 请求...")
        
        response = requests.post(
            f"{base_url}/api/detect/ai",
            json={"content": test_content},
            headers={"Content-Type": "application/json"},
            timeout=30
        )
        
        print(f"📡 收到响应:")
        print(f"状态码: {response.status_code}")
        print(f"响应头: {dict(response.headers)}")
        print(f"响应内容: {response.text}")
        print()
        
        if response.status_code == 200:
            result = response.json()
            print("✅ Web API 调用成功!")
            print(f"AI 概率: {result.get('ai_probability', 'N/A')}")
            print(f"内容类型: {result.get('content_type', 'N/A')}")
            print(f"检测方法: {result.get('detection_method', 'N/A')}")
        else:
            print(f"❌ Web API 调用失败: {response.status_code}")
            
    except requests.exceptions.ConnectionError:
        print("❌ 无法连接到 Web 服务器")
        print("💡 请确保运行: python web_interface.py")
    except Exception as e:
        print(f"❌ Web API 调用异常: {str(e)}")
    
    print("=" * 60)

def show_verification_methods():
    """显示验证方法"""
    
    print("\n" + "=" * 60)
    print("如何确认系统调用了 Zerogpt API")
    print("=" * 60)
    
    print("📋 验证方法:")
    print()
    print("1. 🔍 查看 Web 服务器日志")
    print("   - 在运行 web_interface.py 的终端中查看日志")
    print("   - 寻找 '开始调用 Zerogpt API...' 等日志信息")
    print()
    print("2. 🌐 在 Web 界面中测试")
    print("   - 访问 http://localhost:5000")
    print("   - 点击 'AI检测' 标签页")
    print("   - 输入文本并点击检测")
    print("   - 查看检测结果中的 '检测方法' 字段")
    print()
    print("3. 📊 检查检测结果")
    print("   - 如果 '检测方法' 显示 'zerogpt_api'，说明使用了 API")
    print("   - 如果显示 'local_heuristic'，说明使用了本地检测")
    print()
    print("4. 🔧 使用测试脚本")
    print("   - 运行: python verify_zerogpt_api.py")
    print("   - 查看详细的 API 调用过程")
    print()
    print("5. 📝 常见情况:")
    print("   - ✅ API 可用: 检测方法 = 'zerogpt_api'")
    print("   - ⚠️  API 限制: 检测方法 = 'local_heuristic'")
    print("   - ❌ 网络问题: 检测方法 = 'local_heuristic'")
    print()
    print("=" * 60)

if __name__ == "__main__":
    test_zerogpt_api_directly()
    test_web_api_call()
    show_verification_methods() 